給一個大數,依照題目給的換算單位輸出,有點像是換零錢的題目。
就像我們的數字單位一樣,後面還有可能再細分,所以這邊我們用遞迴的方式去寫。
#include <bits/stdc++.h>
using namespace std;
void split(long long n) {
if (n >= 10000000) {
split(n / 10000000);
cout << " kuti";
n %= 10000000;
}
if (n >= 100000) {
split(n / 100000);
cout << " lakh";
n %= 100000;
}
if (n >= 1000) {
split(n / 1000);
cout << " hajar";
n %= 1000;
}
if (n >= 100) {
split(n / 100);
cout << " shata";
n %= 100;
}
if (n)
cout << " " << n;
}
int main() {
long long n;
int kase = 1;
while (cin >> n) {
cout <<setw(4)<< kase++ << ".";
if (n)
split(n);
else
cout << " 0";
cout << endl;
}
return 0;
}
計算各個國家總共出現多少次,依照字典序輸出。
因為只要求國家,所以後面人名可以直接忽略,這邊直接用 map
去計算出現次數,然後直接輸出。
#include <bits/stdc++.h>
using namespace std;
int main() {
int kase;cin>>kase;
map<string, int> ans;
while (kase--) {
string s;
cin>>s;
ans[s]++;
cin>>s>>s;
}
for(auto[str,i] : ans)
cout<<str<<" "<<i<<endl;
return 0;
}